/*
 * Servicio.cpp
 *
 *  Created on: 07/10/2013
 *      Author: santiago
 */

#include "Servicio.h"

Servicio::Servicio() : Registro(-1) {
	this->nombre="";
	this->idProveedor=0;
	this->tipo="";
}

Servicio::Servicio(unsigned int id) : Registro(id) {
	this->nombre="";
	this->idProveedor=0;
	this->tipo="";
}

Servicio::Servicio(unsigned int id, string nombre, unsigned int idProveedor, string tipo) : Registro(id) {
	this->nombre=nombre;
	this->idProveedor=idProveedor;
	this->tipo=tipo;
}

Servicio::~Servicio() {
}

void Servicio::serializar() {
	(*this) << idProveedor;
	(*this) << nombre;
	(*this) << descripcion;
	(*this) << tipo;
	(*this) << (int) categorias.size();
	for(int i=0; i < (int) categorias.size(); i++)
	(*this) << categorias[i];
}

void Servicio::deserializar() {
	int cantCategorias;
	categorias.clear();
	(*this) >> idProveedor;
	(*this) >> nombre;
	(*this) >> descripcion;
	(*this) >> tipo;
	(*this) >> cantCategorias;
	for(; cantCategorias > 0; cantCategorias--) {
			int idCategoria;
			(*this) >> idCategoria;
			categorias.push_back(idCategoria);
		}
}

/********************************* getters *********************************/

int Servicio::getIdProveedor() {
	return idProveedor;
}

string Servicio::getNombre() {
	return nombre;
}

string Servicio::getDescripcion() {
	return descripcion;
}

string Servicio::getTipo() {
	return tipo;
}

vector<int> Servicio::getCategorias(){
	return this->categorias;
}

/********************************* setters *********************************/

void Servicio::setIdProveedor(int idProveedor) {
	this->idProveedor=idProveedor;
}

void Servicio::setNombre(string nombre) {
	this->nombre=nombre;
}

void Servicio::setDescripcion(string descripcion) {
	this->descripcion=descripcion;
}

void Servicio::setTipo(string tipo) {
	this->tipo=tipo;
}

void Servicio::addCategoria(int categoria){
	this->categorias.push_back(categoria);
}
